<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * 用户控制器
 *
 * @desc    完善文档注释
 * @version 1.1.0
 * @date	2017年6月27日 下午5:32:24
 *
 * @title 用户管理
 * @entry http://discovery.segway.com
 */
class Member extends MY_Manager_Controller
{
	/** @var Lib_member */
	public $lib_member = null;
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library('lib_member');
		
		$this->set_mutable_view_var('head.title', 'Member - Management');
		$this->set_mutable_view_var('head.keywords', '');
		$this->set_mutable_view_var('head.description', '');
		
		$this->lang->load('passport');
	}
	
	/**
	 * 首页 -> 列表页
	 *
	 * @return html
	 *
	 * @command pass noneurl
	 */
	public function index()
	{
		$this->listing();
	}
	
	/**
	 * 用户列表页
	 * 
	 * @desc    listing
	 * @author  Jason
	 * @date	2017年6月14日 下午6:06:44
	 * @link    /manage/member/listing
	 */
	public function listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_member->get_conditions();
		$list = $this->lib_member->get_members_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		$this->load->view('manager/member/list', $data);
	}
	// MARK ajax 列表页
	/**
	 * 用户列表页，ajax，JSON
	 *
	 * @desc    ajax_listing
	 * @author  Jason
	 * @date	2017年6月14日 下午6:06:44
	 * @link    /manage/member/ajax_listing
	 */
	public function ajax_listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_member->get_conditions();
		$list = $this->lib_member->get_members_for_list($conditions, $page, $number);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($data);
	}
	
	/**
	 * 用户详情 - 编辑前信息载入
	 * 
	 * @desc    编辑前信息载入
	 * @method  GET
	 * @author  Jason
	 * @date	2017年6月14日 下午8:01:04
	 * 
	 * @param   number $id       ID，默认为 0，代表新增一条记录
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example 如果参数为 id=101
	 * 			那么URL为 /manage/member/detail/101
	 * 
	 * @demoParam id 101
	 */
	public function detail($id = 0)
	{
		$member = $this->lib_member->get_member_for_detail($id);
		if (empty($member)) {
			$member = [];
		}
		
		$data['content']['member'] = $member;
		
		$this->load->view('manager/member/detail', $data);
	}
	
	/**
	 * 用户详情编辑提交 - 编辑完后的信息提交 - 增加 & 修改
	 *
	 * @desc    编辑完后的信息提交 - 增加 & 修改
	 * @method  POST
	 * @author  Jason
	 * @date	2017年5月24日 下午5:39:14
	 *
	 * @param   number $id		 ID，默认为 0，代表增加 & 非0代表修改
	 * ...
	 *
	 * @return  JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link    /manage/member/ajax_create
	 * 
	 * @command noneurl
	 */
	public function ajax_create()
	{
		if (empty($id = $this->input->post('id'))) {
			list($status, $content) = $this->lib_member->create_member_with_info();
		} else {
			list($status, $content) = $this->lib_member->update_member_with_info();
		}
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 修改用户密码
	 * 
	 * @desc	修改用户密码 - 管理员操作，高级权限：不需要原密码验证！
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月16日 下午7:18:24
	 *
	 * @param   string $opassword
	 * @param   string $password
	 * @param   string $opassconf
	 *
	 * @return  JSON	标准JSON格式响应
	 *
	 * @link    /manage/member/ajax_update_password
	 * 
	 * @command noneurl
	 */
	public function ajax_update_password()
	{
		list($status, $content) = $this->lib_member->update_member_password();
	
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess(['data' => $content]);
		}
	}
	
	/**
	 * 用户状态切换
	 *
	 * @method  POST
	 * @author  Jason
	 * @date	2017年6月16日 下午12:28:10
	 *
	 * @param   number $id	用户ID
	 * @param   string $tag	状态正向标签，启用(enabled)、激活(activated)、审核(checked)、限制(unlimited)
	 *
	 * @return  JSON	标准JSON格式响应
	 *
	 * @link    /manager/member/ajax_toggle_status
	 * 
	 * @command noneurl
	 */
	public function ajax_toggle_status()
	{
		list($status, $content) = $this->lib_member->toggle_status_positive_tag();
		
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess(['data' => $content]);
		}
	}
	
	// 不做软删除！
}
